home *** CD-ROM | disk | FTP | other *** search
/ Windows Game Programming for Dummies (2nd Edition) / WinGamProgFD.iso / mac / DirectX SDK / DXSDK / include / dsetup.h < prev    next >
C/C++ Source or Header  |  2001-10-30  |  10KB  |  309 lines

  1. /*==========================================================================
  2.  *
  3.  *  Copyright (C) 1995-1997 Microsoft Corporation.  All Rights Reserved.
  4.  *
  5.  *  File:       dsetup.h
  6.  *  Content:    DirectXSetup, error codes and flags
  7.  ***************************************************************************/
  8.  
  9. #ifndef __DSETUP_H__
  10. #define __DSETUP_H__
  11.  
  12. #include <windows.h>      // windows stuff
  13.  
  14. #ifdef _WIN32
  15. #define COM_NO_WINDOWS_H
  16. #include <objbase.h>
  17. #else
  18. #endif
  19.  
  20.  
  21. #ifdef __cplusplus
  22. extern "C" {
  23. #endif
  24.  
  25. #define FOURCC_VERS mmioFOURCC('v','e','r','s')
  26.  
  27. // DSETUP Error Codes, must remain compatible with previous setup.
  28. #define DSETUPERR_SUCCESS_RESTART        1
  29. #define DSETUPERR_SUCCESS                0
  30. #define DSETUPERR_BADWINDOWSVERSION     -1
  31. #define DSETUPERR_SOURCEFILENOTFOUND    -2
  32. #define DSETUPERR_BADSOURCESIZE         -3
  33. #define DSETUPERR_BADSOURCETIME         -4
  34. #define DSETUPERR_NOCOPY                -5
  35. #define DSETUPERR_OUTOFDISKSPACE        -6
  36. #define DSETUPERR_CANTFINDINF           -7
  37. #define DSETUPERR_CANTFINDDIR           -8
  38. #define DSETUPERR_INTERNAL              -9
  39. #define DSETUPERR_NTWITHNO3D            -10  /* REM: obsolete, you'll never see this */
  40. #define DSETUPERR_UNKNOWNOS             -11
  41. #define DSETUPERR_USERHITCANCEL         -12
  42. #define DSETUPERR_NOTPREINSTALLEDONNT   -13
  43. #define DSETUPERR_NEWERVERSION          -14
  44. #define DSETUPERR_NOTADMIN              -15
  45. #define DSETUPERR_UNSUPPORTEDPROCESSOR  -16
  46.  
  47. // DSETUP flags. DirectX 5.0 apps should use these flags only.
  48. #define DSETUP_DDRAWDRV         0x00000008      /* install DirectDraw Drivers           */
  49. #define DSETUP_DSOUNDDRV        0x00000010      /* install DirectSound Drivers          */
  50. #define DSETUP_DXCORE           0x00010000    /* install DirectX runtime              */
  51. #define DSETUP_DIRECTX  (DSETUP_DXCORE|DSETUP_DDRAWDRV|DSETUP_DSOUNDDRV)
  52. #define DSETUP_TESTINSTALL      0x00020000      /* just test install, don't do anything */
  53. #define DSETUP_USEROLDERFLAG    0x02000000        /* enable return DSETUPERR_NEWERVERSION */
  54.  
  55. // These OBSOLETE flags are here for compatibility with pre-DX5 apps only.
  56. // They are present to allow DX3 apps to be recompiled with DX5 and still work.
  57. // DO NOT USE THEM for DX5. They will go away in future DX releases.
  58. #define DSETUP_DDRAW            0x00000001      /* OBSOLETE. install DirectDraw           */
  59. #define DSETUP_DSOUND           0x00000002      /* OBSOLETE. install DirectSound          */
  60. #define DSETUP_DPLAY            0x00000004      /* OBSOLETE. install DirectPlay           */
  61. #define DSETUP_DPLAYSP          0x00000020      /* OBSOLETE. install DirectPlay Providers */
  62. #define DSETUP_DVIDEO           0x00000040      /* OBSOLETE. install DirectVideo          */
  63. #define DSETUP_D3D              0x00000200      /* OBSOLETE. install Direct3D             */
  64. #define DSETUP_DINPUT           0x00000800      /* OBSOLETE. install DirectInput          */
  65. #define DSETUP_DIRECTXSETUP     0x00001000      /* OBSOLETE. install DirectXSetup DLL's   */
  66. #define DSETUP_NOUI             0x00002000      /* OBSOLETE. install DirectX with NO UI   */
  67. #define DSETUP_PROMPTFORDRIVERS 0x10000000      /* OBSOLETE. prompt when replacing display/audio drivers */
  68. #define DSETUP_RESTOREDRIVERS   0x20000000      /* OBSOLETE. restore display/audio drivers */
  69.  
  70.  
  71.  
  72. //******************************************************************
  73. // DirectX Setup Callback mechanism
  74. //******************************************************************
  75.  
  76. // DSETUP Message Info Codes, passed to callback as Reason parameter.
  77. #define DSETUP_CB_MSG_NOMESSAGE                     0
  78. #define DSETUP_CB_MSG_CANTINSTALL_UNKNOWNOS         1
  79. #define DSETUP_CB_MSG_CANTINSTALL_NT                2
  80. #define DSETUP_CB_MSG_CANTINSTALL_BETA              3
  81. #define DSETUP_CB_MSG_CANTINSTALL_NOTWIN32          4
  82. #define DSETUP_CB_MSG_CANTINSTALL_WRONGLANGUAGE     5
  83. #define DSETUP_CB_MSG_CANTINSTALL_WRONGPLATFORM     6
  84. #define DSETUP_CB_MSG_PREINSTALL_NT                 7
  85. #define DSETUP_CB_MSG_NOTPREINSTALLEDONNT           8
  86. #define DSETUP_CB_MSG_SETUP_INIT_FAILED             9
  87. #define DSETUP_CB_MSG_INTERNAL_ERROR                10
  88. #define DSETUP_CB_MSG_CHECK_DRIVER_UPGRADE          11
  89. #define DSETUP_CB_MSG_OUTOFDISKSPACE                12
  90. #define DSETUP_CB_MSG_BEGIN_INSTALL                 13
  91. #define DSETUP_CB_MSG_BEGIN_INSTALL_RUNTIME         14
  92. #define DSETUP_CB_MSG_BEGIN_INSTALL_DRIVERS         15
  93. #define DSETUP_CB_MSG_BEGIN_RESTORE_DRIVERS         16
  94. #define DSETUP_CB_MSG_FILECOPYERROR                 17
  95.  
  96.  
  97. #define DSETUP_CB_UPGRADE_TYPE_MASK             0x000F
  98. #define DSETUP_CB_UPGRADE_KEEP                  0x0001
  99. #define DSETUP_CB_UPGRADE_SAFE                  0x0002
  100. #define DSETUP_CB_UPGRADE_FORCE                 0x0004
  101. #define DSETUP_CB_UPGRADE_UNKNOWN               0x0008
  102.  
  103. #define DSETUP_CB_UPGRADE_HASWARNINGS           0x0100
  104. #define DSETUP_CB_UPGRADE_CANTBACKUP            0x0200
  105.  
  106. #define DSETUP_CB_UPGRADE_DEVICE_ACTIVE         0x0800
  107.  
  108. #define DSETUP_CB_UPGRADE_DEVICE_DISPLAY        0x1000
  109. #define DSETUP_CB_UPGRADE_DEVICE_MEDIA          0x2000
  110.  
  111.  
  112. typedef struct _DSETUP_CB_UPGRADEINFO
  113. {
  114.     DWORD UpgradeFlags;
  115. } DSETUP_CB_UPGRADEINFO;
  116.  
  117. typedef struct _DSETUP_CB_FILECOPYERROR
  118. {
  119.     DWORD dwError;
  120. } DSETUP_CB_FILECOPYERROR;
  121.  
  122.  
  123. #ifdef _WIN32
  124. //
  125. // Data Structures
  126. //
  127. #ifndef UNICODE_ONLY
  128.  
  129. typedef struct _DIRECTXREGISTERAPPA {
  130.     DWORD    dwSize;
  131.     DWORD    dwFlags;
  132.     LPSTR    lpszApplicationName;
  133.     LPGUID   lpGUID;
  134.     LPSTR    lpszFilename;
  135.     LPSTR    lpszCommandLine;
  136.     LPSTR    lpszPath;
  137.     LPSTR    lpszCurrentDirectory;
  138. } DIRECTXREGISTERAPPA, *PDIRECTXREGISTERAPPA, *LPDIRECTXREGISTERAPPA;
  139.  
  140. typedef struct _DIRECTXREGISTERAPP2A {
  141.     DWORD    dwSize;
  142.     DWORD    dwFlags;
  143.     LPSTR    lpszApplicationName;
  144.     LPGUID   lpGUID;
  145.     LPSTR    lpszFilename;
  146.     LPSTR    lpszCommandLine;
  147.     LPSTR    lpszPath;
  148.     LPSTR    lpszCurrentDirectory;
  149.     LPSTR    lpszLauncherName;
  150. } DIRECTXREGISTERAPP2A, *PDIRECTXREGISTERAPP2A, *LPDIRECTXREGISTERAPP2A;
  151.  
  152. #endif //!UNICODE_ONLY
  153. #ifndef ANSI_ONLY
  154.  
  155. typedef struct _DIRECTXREGISTERAPPW {
  156.     DWORD    dwSize;
  157.     DWORD    dwFlags;
  158.     LPWSTR   lpszApplicationName;
  159.     LPGUID   lpGUID;
  160.     LPWSTR   lpszFilename;
  161.     LPWSTR   lpszCommandLine;
  162.     LPWSTR   lpszPath;
  163.     LPWSTR   lpszCurrentDirectory;
  164. } DIRECTXREGISTERAPPW, *PDIRECTXREGISTERAPPW, *LPDIRECTXREGISTERAPPW;
  165.  
  166. typedef struct _DIRECTXREGISTERAPP2W {
  167.     DWORD    dwSize;
  168.     DWORD    dwFlags;
  169.     LPWSTR   lpszApplicationName;
  170.     LPGUID   lpGUID;
  171.     LPWSTR   lpszFilename;
  172.     LPWSTR   lpszCommandLine;
  173.     LPWSTR   lpszPath;
  174.     LPWSTR   lpszCurrentDirectory;
  175.     LPWSTR  lpszLauncherName;
  176. } DIRECTXREGISTERAPP2W, *PDIRECTXREGISTERAPP2W, *LPDIRECTXREGISTERAPP2W;
  177. #endif //!ANSI_ONLY
  178. #ifdef UNICODE
  179. typedef DIRECTXREGISTERAPPW DIRECTXREGISTERAPP;
  180. typedef PDIRECTXREGISTERAPPW PDIRECTXREGISTERAPP;
  181. typedef LPDIRECTXREGISTERAPPW LPDIRECTXREGISTERAPP;
  182. typedef DIRECTXREGISTERAPP2W DIRECTXREGISTERAPP2;
  183. typedef PDIRECTXREGISTERAPP2W PDIRECTXREGISTERAPP2;
  184. typedef LPDIRECTXREGISTERAPP2W LPDIRECTXREGISTERAPP2;
  185. #else
  186. typedef DIRECTXREGISTERAPPA DIRECTXREGISTERAPP;
  187. typedef PDIRECTXREGISTERAPPA PDIRECTXREGISTERAPP;
  188. typedef LPDIRECTXREGISTERAPPA LPDIRECTXREGISTERAPP;
  189. typedef DIRECTXREGISTERAPP2A DIRECTXREGISTERAPP2;
  190. typedef PDIRECTXREGISTERAPP2A PDIRECTXREGISTERAPP2;
  191. typedef LPDIRECTXREGISTERAPP2A LPDIRECTXREGISTERAPP2;
  192. #endif // UNICODE
  193.  
  194.  
  195. //
  196. // API
  197. //
  198.  
  199. #ifndef UNICODE_ONLY
  200. INT
  201. WINAPI
  202. DirectXSetupA(
  203.     HWND  hWnd,
  204.     LPSTR lpszRootPath,
  205.     DWORD dwFlags
  206.     );
  207. #endif //!UNICODE_ONLY
  208. #ifndef ANSI_ONLY
  209. INT
  210. WINAPI
  211. DirectXSetupW(
  212.     HWND   hWnd,
  213.     LPWSTR lpszRootPath,
  214.     DWORD  dwFlags
  215.     );
  216. #endif //!ANSI_ONLY
  217. #ifdef UNICODE
  218. #define DirectXSetup  DirectXSetupW
  219. #else
  220. #define DirectXSetup  DirectXSetupA
  221. #endif // !UNICODE
  222.  
  223.  
  224. #ifndef UNICODE_ONLY
  225. INT
  226. WINAPI
  227. DirectXDeviceDriverSetupA(
  228.     HWND  hWnd,
  229.     LPSTR lpszDriverClass,
  230.     LPSTR lpszDriverPath,
  231.     DWORD dwFlags
  232.     );
  233. #endif //!UNICODE_ONLY
  234. #ifndef ANSI_ONLY
  235. INT
  236. WINAPI
  237. DirectXDeviceDriverSetupW(
  238.     HWND   hWnd,
  239.     LPWSTR lpszDriverClass,
  240.     LPWSTR lpszDriverPath,
  241.     DWORD  dwFlags
  242.     );
  243. #endif //!ANSI_ONLY
  244. #ifdef UNICODE
  245. #define DirectXDeviceDriverSetup  DirectXDeviceDriverSetupW
  246. #else
  247. #define DirectXDeviceDriverSetup  DirectXDeviceDriverSetupA
  248. #endif // !UNICODE
  249.  
  250. #ifndef UNICODE_ONLY
  251. INT
  252. WINAPI
  253. DirectXRegisterApplicationA(
  254.     HWND                  hWnd,
  255.     LPVOID                  lpDXRegApp
  256.     );
  257. #endif //!UNICODE_ONLY
  258. #ifndef ANSI_ONLY
  259. INT
  260. WINAPI
  261. DirectXRegisterApplicationW(
  262.     HWND                  hWnd,
  263.     LPVOID                  lpDXRegApp
  264.     );
  265. #endif //!ANSI_ONLY
  266. #ifdef UNICODE
  267. #define DirectXRegisterApplication  DirectXRegisterApplicationW
  268. #else
  269. #define DirectXRegisterApplication  DirectXRegisterApplicationA
  270. #endif // !UNICODE
  271.  
  272. INT
  273. WINAPI
  274. DirectXUnRegisterApplication(
  275.     HWND     hWnd,
  276.     LPGUID   lpGUID
  277.     );
  278.  
  279. //
  280. // Function Pointers
  281. //
  282. #ifdef UNICODE
  283. typedef INT (WINAPI * LPDIRECTXSETUP)(HWND, LPWSTR, DWORD);
  284. typedef INT (WINAPI * LPDIRECTXDEVICEDRIVERSETUP)(HWND, LPWSTR, LPSTR, DWORD);
  285. typedef INT (WINAPI * LPDIRECTXREGISTERAPPLICATION)(HWND, LPVOID);
  286. #else
  287. typedef INT (WINAPI * LPDIRECTXSETUP)(HWND, LPSTR, DWORD);
  288. typedef INT (WINAPI * LPDIRECTXDEVICEDRIVERSETUP)(HWND, LPSTR, LPSTR, DWORD);
  289. typedef INT (WINAPI * LPDIRECTXREGISTERAPPLICATION)(HWND, LPVOID);
  290. #endif // UNICODE
  291.  
  292. typedef DWORD (FAR PASCAL * DSETUP_CALLBACK)(DWORD Reason,
  293.                                   DWORD MsgType,       /* Same as flags to MessageBox */
  294.                                   LPSTR szMessage,
  295.                                   LPSTR szName,
  296.                                   void *pInfo);
  297.  
  298. INT WINAPI DirectXSetupSetCallback(DSETUP_CALLBACK Callback);
  299. INT WINAPI DirectXSetupGetVersion(DWORD *lpdwVersion, DWORD *lpdwMinorVersion);
  300.  
  301. #endif // WIN32
  302.  
  303.  
  304. #ifdef __cplusplus
  305. };
  306. #endif
  307.  
  308. #endif
  309.